#ifndef WPMZ_H
#define WPMZ_H

#include <vector>

#ifdef _WIN32
    #ifdef BUILDING_DLL
        #define WPMZ_API __declspec(dllexport)
    #else
        #define WPMZ_API __declspec(dllimport)
    #endif
#else
    #define WPMZ_API __attribute__((visibility("default")))
#endif

// 前向声明 wpml::Document
namespace wpml {
    struct Document;
}

class WPMZ_API Wpmz {
public:
    // 将 wpml::Document 对象打包为字节向量
    static std::vector<char> Pack(const wpml::Document &doc);
    
    // 从字节向量解包为 wpml::Document 对象
    static wpml::Document Unpack(const std::vector<char> &data);
};

#endif // WPMZ_H